/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cpal.entrenamiento.controller;

import com.cpal.entrenamiento.entity.Palabra;
import com.cpal.entrenamiento.service.IPalabraService;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Grid;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Spinner;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Image;

/**
 *
 * @author Omar
 */
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class BuscarPalabraViewController extends SelectorComposer<Component> {

    //definición de controles de la vista
    @Wire
    Grid grPalabras;
    @Wire
    Textbox txtIdPalabra;
    @Wire
    Textbox txtCodigoEjercicio;
    @Wire
    Textbox txtDescPalabra;
    @Wire
    Textbox txtRima;
    @Wire
    Combobox cmbRima;
    @Wire
    Textbox txtSilaba;
    @Wire
    Combobox cmbEstructura;
    @Wire
    Combobox cmbPosicion;
    @Wire
    Textbox txtCodigo;
    @Wire
    Textbox txtIdImagen;
    @Wire
    Textbox txtSrcImagen1;
    @Wire
    Textbox txtSrcImagen2;
    @Wire
    Textbox txtSrcImagen3;
    @Wire
    Textbox txtSrcImagen4;
    @Wire
    Textbox txtSrcImagen5;
    @Wire
    Textbox txtSrcImagen6;
    @Wire
    Textbox txtSrcImagen7;
    @Wire
    Textbox txtSrcImagen8;
    @Wire
    Textbox txtCodigoPlantilla;
    @Wire
    Textbox txtCodigoDificultad;
    @Wire
    Textbox txtTextoDescripcion;
    @Wire
    Textbox txtTextoEnunciado;
    @Wire
    Textbox txtTextoOperacion;
    @Wire
    Textbox txtVoz;
    @Wire
    Spinner spnCantidadSilabas;
//    @Wire
//    Image imagenSelec;
//    @Wire
//    Image image;
    //Spring services
    @WireVariable
    IPalabraService palabraService;
    String codigo = null;
    String idImagen = null;
    String srcImagen1 = null;
    String srcImagen2 = null;
    String srcImagen3 = null;
    String srcImagen4 = null;
    String srcImagen5 = null;
    String srcImagen6 = null;
    String srcImagen7 = null;
    String srcImagen8 = null;
    String plantilla = null;
    String dificultad = null;
    String descripcion = null;
    String operacion = null;
    String enunciado = null;
    String voz = null;

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp); //To change body of generated methods, choose Tools | Templates.

        if (!Executions.getCurrent().getArg().isEmpty()) {
            HashMap map = new HashMap();
            map = (HashMap) Executions.getCurrent().getArg();
            if (!map.isEmpty()) {
                Iterator it = map.entrySet().iterator();
                while (it.hasNext()) {
                    Map.Entry e = (Map.Entry) it.next();
                    System.out.println(e.getKey() + " " + e.getValue());
                    if (e.getKey().equals("codigo")) {
                        codigo = (String) e.getValue();
                    }
                    if (e.getKey().equals("idImagen")) {
                        idImagen = (String) e.getValue();
                    }
                    if (e.getKey().equals("srcImagen1")) {
                        srcImagen1 = (String) e.getValue();
                    }
                    if (e.getKey().equals("srcImagen2")) {
                        srcImagen2 = (String) e.getValue();
                    }
                    if (e.getKey().equals("srcImagen3")) {
                        srcImagen3 = (String) e.getValue();
                    }
                    if (e.getKey().equals("srcImagen4")) {
                        srcImagen4 = (String) e.getValue();
                    }
                    if (e.getKey().equals("srcImagen5")) {
                        srcImagen5 = (String) e.getValue();
                    }
                    if (e.getKey().equals("srcImagen6")) {
                        srcImagen6 = (String) e.getValue();
                    }
                    if (e.getKey().equals("srcImagen7")) {
                        srcImagen7 = (String) e.getValue();
                    }
                    if (e.getKey().equals("srcImagen8")) {
                        srcImagen8 = (String) e.getValue();
                    }
                    if (e.getKey().equals("plantilla")) {
                        plantilla = (String) e.getValue();
                    }
                    if (e.getKey().equals("dificultad")) {
                        dificultad = (String) e.getValue();
                    }
                    if (e.getKey().equals("descripcion")) {
                        descripcion = (String) e.getValue();
                    }
                    if (e.getKey().equals("enunciado")) {
                        enunciado = (String) e.getValue();
                    }
                    if (e.getKey().equals("voz")) {
                        voz = (String) e.getValue();
                    }
                    if (e.getKey().equals("operacion")) {
                        operacion = (String) e.getValue();
                    }

                }
                System.out.println("codigo en palabra controller: " + codigo);
                txtCodigoEjercicio.setValue(codigo);
                txtIdImagen.setValue(idImagen);
                txtSrcImagen1.setValue(srcImagen1);
                txtSrcImagen2.setValue(srcImagen2);
                txtSrcImagen3.setValue(srcImagen3);
                txtSrcImagen4.setValue(srcImagen4);
                txtSrcImagen5.setValue(srcImagen5);
                txtSrcImagen6.setValue(srcImagen6);
                txtSrcImagen7.setValue(srcImagen7);
                txtSrcImagen8.setValue(srcImagen8);
                txtCodigoPlantilla.setValue(plantilla);
                txtCodigoDificultad.setValue(dificultad);
                txtTextoDescripcion.setValue(descripcion);
                txtTextoEnunciado.setValue(enunciado);
                txtTextoOperacion.setValue(operacion);
                txtVoz.setValue(voz);

            }

        }
    }

    //eventos de la vista        
    @Listen("onClick=#btnBuscar")
    public void buscarPalabra() {
        System.out.println("llego");
        //List<Palabra> palabras = null;
        //palabras = palabraService.buscarPalabra(null, txtRima.getText(), Integer.parseInt(cmbRima.getSelectedItem().getValue().toString()), null, 0, null, null);
        //ListModelList prodModel = new ListModelList(palabras);
        //txtDescPalabra.setText("hola a todos");
        //grPalabras.setModel(prodModel);

        ListModelList<Palabra> palabraModel = new ListModelList<Palabra>(palabraService.buscarPalabra(null, txtRima.getText(), Integer.parseInt(cmbRima.getSelectedItem().getValue().toString()), null, 0, null, null));
        System.out.println("palabraModel: " + palabraModel);
        grPalabras.setModel(palabraModel);
        System.out.println("");
    }
//    @Listen("onChange=#cmbRima")
//    public void DDD(){
//        System.out.println(cmbRima.getSelectedItem().getLabel());
//        txtRima.setText(cmbRima.getSelectedItem().getLabel());
//        
//    }
    private static final long serialVersionUID = 1L;
    @Wire
    Window modalDialogPalabra;

    @Listen("onClick = #btnClosePalabra")
    public void showModalPalabra(Event e) {
        modalDialogPalabra.detach();
    }
//    @Listen("onClick = #linkSelecc")
//    public void seleccionaImagen(Event e) {
//        System.out.println("Selecciona Imagen");
//        String paginaActual = "actualizarEjercicioRimasCF.zul";
//        System.out.println("src imagen: " + imagenSelec.getSrc());
//        Executions.getCurrent().sendRedirect(paginaActual + "?imagen=" + imagenSelec.getSrc() + "&codigo=" + codigo);
//
//    }
}
